#ifndef _CHANGETILEACTION_
#define _CHANGETILEACTION_

#include "BaseAction.hpp"
#include "Content/Map.hpp"
#include "MapResizer.hpp"
#include "Utilities/StringHelper.hpp"

/** 
* Action used to change a tile sprite value.
*/
class ChangeTileAction: public BaseAction{
private:

    Map* target;
    int targetX;
    int targetY;
    int targetLayer;
    int value;
    int originalValue;
    bool needsResize;
public:
    MapResizer::ResizeInfo* resizeResult;
    ChangeTileAction(Map* map, int layer, int setTile, int tilex, int tiley, char* name);
    virtual void perform();
    virtual void undo();
    virtual ~ChangeTileAction();
};

#endif
